iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
AI & Data

如何使用演算法優化ERP系統營運準確率與效能以降低營運成本系列 第 11

[Day11] 從無到有的曖昧對象演算法(part03)

  • 分享至 

  • xImage
  •  

曖昧有時害怕的不是沒有結果 而是根本不是曖昧而是單相思啊

前幾天我們做的都是單一結果,實質上沒有進行任何往好的結果進行優化,所以今天要改善這個部分。

這次先用已知的最佳結果進行實測,來找出最佳的權重與組合

Dictionary<string, double> values = new Dictionary<string, double>();

            Bottle_keynameans = lightestBottle.GetDescription().Split(',').ToList();
            while (!(Bottle_keynameans[0] == BottleContent_low && Bottle_keynameans[1] == BottleFillLevel_low))
            {
                ans_low = 1;
                // 使用 Dictionary 存儲隨機值與名稱
                values = new Dictionary<string, double>
                {
                    { "Water", random.NextDouble() },
                    { "Ice", random.NextDouble() },
                    { "Juice", random.NextDouble() },
                    { "Full", random.NextDouble() },
                    { "Half", random.NextDouble() },
                    { "Empty", random.NextDouble() }
                };

                for (int i = 0; i < bottles.Count; i++)
                {
                    Bottle bottle = bottles[i];
                    stringList = bottle.GetDescription().Split(',').ToList();
                    string BottleContent = stringList[0];
                    string BottleFillLevel = stringList[1];
                    weight = bottle.Get_Tatle_Weight();


                    Console.WriteLine($"瓶子 {i + 1}:{bottle.GetDescription()}");

                    // 檢查 BottleContent 是否等於 KeyName,如果是,則存儲對應的值
                    if (values.ContainsKey(BottleContent))
                    {
                        contentValue = values[BottleContent];
                    }
                    // 檢查 BottleFillLevel 是否等於 KeyName,如果是,則存儲對應的值
                    if (values.ContainsKey(BottleFillLevel))
                    {
                        fillLevelValue = values[BottleFillLevel];
                    }

                    double ans = contentValue * fillLevelValue;
                    if (ans_low > ans)
                    {
                        ans_low = ans;
                        BottleContent_low = BottleContent;
                        BottleFillLevel_low = BottleFillLevel;
                    }

                    Console.WriteLine($"對應的值:{ans}");
                }
            };
            Console.WriteLine($"最低的權重結果:{ans_low} \n組合項目:{BottleContent_low} {BottleFillLevel_low}\n" + JsonConvert.SerializeObject(values));



            Console.Rea

希望能夠堅持完成連續30天的挑戰,也希望如果有錯也請各位高手不吝嗇指教!!


上一篇
[Day10] 從無到有的曖昧對象演算法(part02)
下一篇
[Day12] 從無到有的曖昧對象演算法(part04)
系列文
如何使用演算法優化ERP系統營運準確率與效能以降低營運成本13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言